A virtual machine (VM) represents an emulation of a computer system and can be used to perform various tasks, such as to perform computing tasks in a dedicated computing environment. VMs can be implemented in various ways, such as locally generated VMs, remotely hosted VMs, and so forth. A VM that runs within a remotely hosted environment (e.g., a cloud environment) is typically accessed by its tenant over a network connection that functions within a guest operating system of the VM. One result of this is that misconfigurations or malfunctions within the guest operating system can render the VM unreachable by its tenant. Some host environments seek to provide virtual console access to such VMs to allow the tenants to recover them. Virtual console access, however, may pose networking and security issues. Further, some hosting environments may assist tenants with VM recovery however this is complicated and scales poorly. Thus, current VM recovery solutions suffer from a number of drawbacks, such as from the perspectives of security, scalability, and resource usage.